Turn a Waveshare ESP32-S3 2.8″ board into a small wireless Android Auto screen that shows the Google Maps view from your phone. Hardware, flashing, phone setup and daily use, step by step.
No app on the phone, no Bluetooth, no extra hardware.
Android Auto always runs on the phone: the phone draws the Maps screen and streams it as video to a car's screen (the head unit), which only displays it and sends back touches. MiniNav plays the part of that car screen. Android Auto has a hidden developer option, Start headunit server, that lets a head unit connect to the phone over WiFi; MiniNav connects to it, completes the Android Auto handshake (TLS), receives the H.264 video of the Maps screen and decodes it on the ESP32-S3.
Everything you need on the table.
| Item | Details | Notes |
|---|---|---|
| Waveshare ESP32-S3-Touch-LCD-2.8 | ESP32-S3R8, 16 MB flash, 8 MB PSRAM, 2.8″ ST7789 320×240 LCD, capacitive touch, QMI8658 motion sensor, BOOT button | Buy on Robu.in. The non-touch "ESP32-S3-LCD-2.8" works too (no touch) |
| USB-C data cable | For flashing, and to power the board on the bike or in the car | Must carry data, not just charge |
| Android phone | Android Auto app, version 17.4 or newer | 2.4 GHz WiFi / hotspot |
| Computer | macOS, Linux, Windows or ChromeOS with Chrome or Edge | To flash once |
| 3D-printed case | STL files in docs/case/ | Optional; no printer? A printing service such as Robu.in prints it for about ₹100–200 |
Straight from the browser: nothing to install, about one minute.
USB JTAG/serial debug unit, usbmodem or COM5).
The page erases what's needed, writes the firmware at the right address and checks it.
MiniNavHotspot, board WiFi MiniNav, password mininav123 for both, and right-hand drive.
To change them, build from source instead.0x1000 to 0x0 (the ESP32-S3 starts at 0; at 0x1000 the screen stays black), choose MiniNav.bin, then click Program.Unlock Android Auto's developer settings and start its headunit server.
The board offers two ways at the same time. Use A unless you have a reason not to.
MiniNavHotspot, password mininav123 (or what you set in menuconfig), band 2.4 GHz.MiniNav, tap it in the WiFi list → Forget.MiniNav, password mininav123, and allow auto-reconnect.MiniNav.| Step | Screen says | What to do |
|---|---|---|
| 1/6 | Waiting for phone | Turn on the hotspot (A) or join MiniNav (B) |
| 2/6 | Phone found | Make sure Start headunit server is running |
| 3–5/6 | Connecting · Checking version · Securing link | Nothing, takes a second or two |
| 6/6 | Starting Auto | First time only: unlock the phone and accept any Android Auto prompt |
| Button | What it does |
|---|---|
| Touch | Sends your taps to Android Auto on the road. Android Auto's app bar then stays on screen (you need it to tap), so it forces Full screen off. |
| Full screen | Hides Android Auto's app bar so the map fills the screen. Only while Touch is off. |
| Theme | Light or dark, for the board and for Maps. |
Settings are saved. Changing one while connected makes Android Auto reconnect by itself in ~4 s.
| Do | Result |
|---|---|
| BOOT press | Day / night theme |
| BOOT BOOT double press | Touch on / off (a banner shows, Android Auto reconnects with the new layout) |
| BOOT hold 1 s | Built-in demo drive on / off (works without a phone) |
| Turn the board over | The picture flips to stay upright |
Two parts, in docs/case/. The back panel has slits for a strap, so you can tie it to handlebars or a mount.
| File | Part | Print orientation |
|---|---|---|
MiniNav-Frame-with-button.stl | Front frame with strap pockets and a flexible BOOT button | Back side down |
MiniNav-back-panel-with-strap-slits.stl | Back panel with two strap slits | Outer face down |
| Symptom | Fix |
|---|---|
| Stuck at Checking version / "Phone stuck" | The phone's headunit server is stuck on an old session (happens after the board loses power mid-drive). Android Auto ⋮ → Stop headunit server, then Start headunit server. |
| "Port 5277 refused" | The headunit server isn't running: ⋮ → Start headunit server. Reboot the phone if it persists. |
| Stays at Waiting for phone | Hotspot on, 2.4 GHz, correct name and password? In mode B, is the phone joined to MiniNav? |
Phone has no internet on MiniNav | Use the phone hotspot (mode A). |
| Map stops when the phone locks | Android Auto battery usage → Unrestricted. |
| Flashed, but the screen stays black | Flashed by hand at the wrong address: flash MiniNav.bin again at 0x0, not 0x1000, then tap RESET. |
| Flashing fails | Use Chrome or Edge and a data cable; hold BOOT, tap RESET, release BOOT, flash again. |